package com.moli.controller;

import com.moli.domain.ResponseResult;
import com.moli.domain.entity.User;
import com.moli.enums.AppHttpCodeEnum;
import com.moli.exception.SystemException;
import com.moli.service.BlogLoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author： XC
 * @Date： 2023-06-04 09:20
 * @Description： 博客登录控制层
 */

@RestController
public class BlogLoginController {
	@Autowired
	private BlogLoginService blogLoginService;

	/**
	 * 用户鉴权登录功能
	 *
	 * @param user
	 * @return
	 */
	@PostMapping("/login")
	public ResponseResult login(@RequestBody User user) {
		//请求体如果没有包含用户名，报相应的异常
		if (!StringUtils.hasText(user.getUserName())) {
			//提示 必须要传用户名 又要提示给前端 又要返回后端
			//统一异常处理  自定义SystemException（在GlobalExceptionHandler中定义）
			throw new SystemException(AppHttpCodeEnum.REQUIRE_USERNAME);
		}
		return blogLoginService.login(user);
	}

	/**
	 * 用户退出功能
	 *
	 * @return
	 */
	@PostMapping("/logout")
	public ResponseResult logout() {
		return blogLoginService.logout();
	}
}
